Psst: Open the JavaScript Console and try to play around with these functions:
const bst = new BinarySearchTree()
bst.insert(50).insert(30).insert(20).insert(40).insert(70).insert(60).insert(80)
bst.breadthFirstSearch() // should return [50, 30, 70, 20, 40, 60, 80]
bst.DFSPreOrder() // should return [50, 30, 20, 40, 70, 60, 80]
bst.DFSInOrder() // should return [20, 30, 40, 50, 60, 70, 80]
bst.DFSPostOrder() // should return [20, 40, 30, 60, 80, 70, 50]
bst.find(30) // should return the node with the value of 30
bst.remove(20) // removes the node with the value of 20
bst.remove(30) // removes the node with the value of 30
bst.remove(50) // removes the node with the value of 50